static ssize_t rio_read(rio_t *rp,char *usrbuf,size_t n)
{
    int cnt;
    while(rp->rio_cnt <=0)
    {
        rp->rio_cnt = read(rp->rio_fd,rp->rio_buf，sizeof(rp->rio_buf));
        if (rp->rio_cnt<0)
        {
            if(errno !=EINTR)
            {
                return -1;
            }
        }
        else if (rp->rio_cnt ==0)
            return 0;
        else
            rp->rio_bufptr = rp->rio_buf;
    }
    cnt = n;
    if (rp->rio_cnt < n)
        cnt = rp->rio_cnt;
    mencpy(usrbuf,rp->rio_bufptr,cnt);
    rp->rio_bufptr += cnt;
    rp->rio_cnt -= cnt;
    return cnt;
}
